package com.terrace.core.utils.validation.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.terrace.core.utils.enums.RegexType;

/**
 * 属性验证
 * 
 * @author jiangyg
 *
 */
@Inherited
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE })
public @interface FieldValid {
	
	/**
	 * 描述
	 */
	String depict();

	/**
	 * 是否可为空
	 * 
	 * @return
	 */
	boolean nullable() default true;

	/**
	 * 字符串长度
	 * @return
	 */
	int length() default 255;
	
	/**
	 * 常用的集中表达式正则验证
	 * @return
	 */
	RegexType regexType() default RegexType.NONE;

	/**
	 * 自定义正则验证表达式
	 * @return
	 */
    String customRegex() default "";

}
